/*
1 发送请求获取数据
2 点击轮播图 预览大图
  1 给轮播图绑定点击事件
  2 调用小程序的api  previewImage
3 点击 加入购物车
  1 先绑定点击事件
  2 获取缓存中的购物车数据 数组格式
  3 先判断 当前的商品是否已经存在于 购物车
  4 已经存在 修改商品数据  执行购物车数量++ 重新把购物车数组 填充回缓存中
  5 不存在于购物车的数组中 直接给购物车数组添加一个新元素 新元素 带上 购买数量属性 num  重新把购物车数组 填充回缓存中
  6 弹出提示
4 商品收藏
  1 页面onShow的时候  加载缓存中的商品收藏的数据
  2 判断当前商品是不是被收藏
    1 是 改变页面的图标
    2 不是 。。
  3 点击商品收藏按钮
    1 判断该商品是否存在于缓存数组中
    2 已经存在 把该商品删除
    3 没有存在 把商品添加到收藏数组中 存入到缓存中即可
 */

import {request} from "../../request/index";
import regeneratorRuntime from '../../lib/runtime/runtime';

Page({
    data: {
        goodsObj: {},
        isCollect: false
    },

    //商品信息
    GoodsInfo: {},

    onLoad: function (options) {
        const {goods_id} = options;
        this.getGoodsDetail(goods_id);
    },

    //获取商品详情数据
    async getGoodsDetail(goods_id) {
        const res = await request({url: '/goods/detail', data: {goods_id}});
        this.GoodsInfo = res;
        const goodsObj = {
            goods_name: res.goods_name,
            goods_price: res.goods_price,
            // iphone部分手机 不识别 webp图片格式
            // 最好找到后台 让他进行修改
            // 临时自己改 确保后台存在 1.webp => 1.jpg
            goods_introduce: res.goods_introduce.replace(/\.webp/g, '.jpg'),
            pics: res.pics
        };

        //是否被收藏过
        const collect = wx.getStorageSync('collect') || [];
        const index = collect.findIndex(item => item.goods_id === this.GoodsInfo.goods_id);
        this.setData({goodsObj, isCollect: index !== -1});
    },

    handlePreview(e) {
        const current = e.currentTarget.dataset.url;
        const urls = this.GoodsInfo.pics.map(v => v.pics_mid);

        wx.previewImage({
            current: current,
            urls: urls
        })
    },

    // 点击 加入购物车
    handleCartAdd() {
        // 1 获取缓存中的购物车数组
        const cart = wx.getStorageSync('cart') || [];
        // 2 判断商品对象是否存在于购物车数组中
        const index = cart.findIndex(item => item.goods_id === this.GoodsInfo.goods_id);
        if (index === -1) {
            //3  不存在 第一次添加
            this.GoodsInfo.num = 1;
            this.GoodsInfo.checked = true;
            cart.push(this.GoodsInfo);
        } else {
            // 4 已经存在购物车数据 执行num++
            cart[index].num++;
        }
        // 5 把购物车重新添加回缓存中
        wx.setStorageSync('cart', cart);
        // 6 弹窗提示
        wx.showToast({
            title: '添加成功',
            icon: 'success',
            // true 防止用户 手抖 疯狂点击按钮
            mask: true
        })
    },

    //收藏商品
    handleCollect() {
        let isCollect = false;
        const collect = wx.getStorageSync('collect') || [];
        const index = collect.findIndex(item => item.goods_id === this.GoodsInfo.goods_id);
        if (index === -1) {
            //没有收藏
            collect.push(this.GoodsInfo);
            isCollect = true;

        } else {
            //已经收藏
            collect.splice(index, 1);
            isCollect = false;
        }
        wx.setStorageSync('collect', collect);
        this.setData({isCollect});
        wx.showToast({
            title: isCollect ? '添加成功' : '取消成功',
            icon: 'success',
            mask: true
        })
    }
})
